const db = require('../db/index');

// 获取文章分类列表
exports.getArticleCates = (req, res) => {
  // 根据分类的状态，获取所有未被删除的分类列表数据
  // is_delete 为 0 表示没有被 标记为删除 的数据
  const sql = 'select * from ev_article_cate where is_delete=0 order by id asc';
  db.query(sql, (err, results) => {
    if (err) return res.cc(err);
    res.send({
      status: 0,
      message: '获取文章分类列表成功！',
      data: results
    })
  })
}

// 新增文章分类
exports.addArticleCates = (req, res) => {
  const { name, alias } = req.body;
  const selectSql = 'select * from ev_article_cate where name=? or alias=?';
  db.query(selectSql, [name, alias], (err, results) => {
    if (err) return res.cc(err);
    if (results.length === 2) {
      return res.cc('分类名称与别名被占用，请更换后重试！');
    } else if (results.length === 1) {
      if (results[0].name === name && results[0].alias === alias) {
        return res.cc('分类名称与别名被占用，请更换后重试！')
      } else if (results[0].name === name) {
        return res.cc('分类名称被占用，请更换后重试！')
      } else if (results[0].alias === alias) {
        return res.cc('别名被占用，请更换后重试！')
      }
    }
    const insertSql = 'insert into ev_article_cate set ?';
    db.query(insertSql, req.body, (err, result) => {
      if (err) return res.cc(err);
      if (result.affectedRows !== 1) {
        return res.cc('新增文章分类失败！')
      }
      res.cc('新增文章分类成功！', 0)
    })
  })
}

exports.deleteArticleCates = (req, res) => {
  const sql = 'update ev_article_cate set is_delete=1 where id=?';
  db.query(sql, req.params.id, (err, result) => {
    if (err) return res.cc(err);
    if (result.affectedRows !== 1) {
      return res.cc('删除文章分类失败！')
    }
    res.cc('删除文章分类成功！', 0)
  })
}

exports.getArtcateById = (req, res) => {
  const sql = 'select * from ev_article_cate where id=?';
  db.query(sql, req.params.id, (err, results) => {
    if (err) return res.cc(err);
    if (results.length !== 1) {
      return res.cc('获取文章分类列表失败！')
    }
    res.send({
      status: 0,
      message: '获取文章分类成功！',
      data: results[0],
    })
  })
}

exports.updateArtcateById = (req, res) => {
  const { id, name, alias } = req.body;
  const selectSql = 'select * from ev_article_cate where id<>? and ( name=? or alias=? )';
  db.query(selectSql, [id, name, alias], (err, results) => {
    if (err) return res.cc(err);
    if (results.length === 2) {
      return res.cc('分类名称与别名被占用，请更换后重试！')
    } else if (results.length === 1) {
      if (results[0].name === name && results[0].alias === alias) {
        return res.cc('分类名称与别名被占用，请更换后重试！')
      } else if (results[0].name === name) {
        return res.cc('分类名称被占用，请更换后重试！')
      } else if (results[0].alias === alias) {
        return res.cc('别名被占用，请更换后重试！')
      }
    }
    const updateSql = 'update ev_article_cate set ? where id=?';
    db.query(updateSql, [req.body, id], (err, result) => {
      if (err) return res.cc(err);
      if (result.affectedRows !== 1) {
        return res.cc('更新文章分类失败！')
      }
      res.cc('更新文章分类成功！', 0)
    })
  })
}